\chapter{Windows 安装指南}
\label{ch:installation-windows}

本章介绍如何在 Windows 10/11 环境部署 cpp-orchestrator。只要安装 Visual Studio 2022、.NET SDK 与 Python，流程即可顺利完成。

\section{先决条件}

\begin{enumerate}
    \item Windows 10 21H1 或 Windows 11 22H2 及以上版本
    \item 管理员权限，用于安装 SDK 与修改 PATH
    \item 至少 4 GB 可用磁盘空间
\end{enumerate}

\section{步骤一：安装 Visual Studio 2022}

下载最新版 Visual Studio Installer，在“工作负载”页面选择：

\begin{itemize}[leftmargin=*]
    \item \textbf{使用 C++ 的桌面开发}（包含 MSVC、Windows SDK、CMake）
    \item 可选：\textbf{.NET 桌面开发}（方便调试 Roslyn）
\end{itemize}

安装完成后，打开“x64 Native Tools Command Prompt for VS 2022”，执行：

\begin{lstlisting}[style=bash]
cl.exe /?
cmake --version
dotnet --info | head -n 5
\end{lstlisting}

确认编译器和工具可用。

\section{步骤二：安装 .NET 8 SDK}

访问 \href{https://dotnet.microsoft.com/download}{dotnet.microsoft.com/download}，选择 x64 安装包。安装后在 PowerShell 中执行：

\begin{lstlisting}[style=bash]
dotnet --list-sdks
\end{lstlisting}

确保 8.0.x SDK 已注册。

\section{步骤三：安装 Python 3.11+}

推荐使用 \href{https://www.python.org/downloads/windows/}{python.org} 官方安装器，并勾选 “Add python.exe to PATH”。

使用 PowerShell 验证：

\begin{lstlisting}[style=bash]
python --version
python -m pip --version
\end{lstlisting}

若存在旧版本，可使用 `py -3.11` 显式调用。

\section{步骤四：安装 cpp-orchestrator}

以 PowerShell 为例：

\begin{lstlisting}[style=bash]
python -m venv C:\\Envs\\cpp-orchestrator
C:\\Envs\\cpp-orchestrator\\Scripts\\Activate.ps1
pip install --upgrade pip
pip install cpp-orchestrator
\end{lstlisting}

安装结束后执行 `cpp-orchestrator --help` 验证命令是否可见。

\section{可选：安装 Windows 子系统 Linux（WSL）}

若需要在 Windows 中复用 Linux 工具链，可安装 WSL2：

\begin{lstlisting}[style=bash]
wsl --install -d Ubuntu-24.04
\end{lstlisting}

进入 WSL 后可按照第 \ref{ch:installation-linux} 章的 Linux 步骤安装工具。

\section{常见问题}

\subsection{cl.exe 找不到}

确保在“x64 Native Tools Command Prompt for VS 2022”中执行命令，或手动运行：

\begin{lstlisting}[style=bash]
"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Auxiliary\\Build\\vcvars64.bat"
\end{lstlisting}

\subsection{pip 超时}

可更换镜像源，例如：

\begin{lstlisting}[style=bash]
pip install cpp-orchestrator -i https://pypi.tuna.tsinghua.edu.cn/simple
\end{lstlisting}

\subsection{PATH 未更新}

如果安装器未自动写入 PATH，可通过“系统属性$\rightarrow$高级$\rightarrow$环境变量”手动添加以下路径：

\begin{itemize}[leftmargin=*]
    \item Python：\texttt{C:\\Users\\<User>\\AppData\\Local\\Programs\\Python\\Python311}
    \item Scripts：\texttt{C:\\Users\\<User>\\AppData\\Local\\Programs\\Python\\Python311\\Scripts}
    \item dotnet：\texttt{C:\\Program Files\\dotnet}
\end{itemize}

\section{快速自检}

在 PowerShell 中执行：

\begin{lstlisting}[style=bash]
cpp-orchestrator --version
where cl
dotnet build --help | Select-String "MSBuild"
\end{lstlisting}

若命令均输出正常信息，则表明 Windows 安装流程已顺利完成。
